package com.shiro.dao;

import com.shiro.entity.User;

import java.util.Set;

/**
 * 用户数据访问对象
 * <p>User: Zhang Kaitao
 * <p>Date: 14-1-28
 * <p>Version: 1.0
 */
public interface UserDao {

	/**
	 * 创建用户
	 * @param user 用户对象
	 * */
    public User createUser(User user);
    
    /**
     * 更新用户
     * @param user 用户对象
     * */
    public void updateUser(User user);
    
    /**
     * 删除用户
     * @param userId 用户id
     * */
    public void deleteUser(Long userId);

    /**
     * 用户关联角色
     * @param userId 用户id
     * @param roleIds 角色组
     * */
    public void correlationRoles(Long userId, Long... roleIds);
    
    /**
     * 取消用户关联的角色
     * @param userId 用户id
     * @param roleIds 角色组
     * */
    public void uncorrelationRoles(Long userId, Long... roleIds);

    /**
     * 通过id查找用户
     * @param userId 用户id
     * */
    User findOne(Long userId);

    /**
     * 通过用户名查找用户
     * @param username 用户名
     * */
    User findByUsername(String username);

    /**
     * 通过用户名查找该用户拥有的角色
     * @param username 用户名
     * */
    Set<String> findRoles(String username);

    /**
     * 通过用户名查找该用户拥有的权限
     * @param username 用户名
     * */
    Set<String> findPermissions(String username);
}


















